Methods and systems for measuring the texture of carpet

ABSTRACT

Methods and systems are disclosed for analyzing one or more images of a textile to determine a presence or absence of defects. In one example, an image of at least a portion of a textile may be obtained and compared to a reference image of a reference textile. Based on the comparison, one or more areas indicative of a height variation between the textile and the reference textile may be determined. An action may be performed based on the one or more areas indicative of the height variation.

CROSS-REFERENCE TO RELATED PATENT APPLICATION

This application claims priority to U.S. Provisional Application No.62/850,898, filed on May 21, 2019, the entirety of which is incorporatedby reference herein.

BACKGROUND

Human inspectors typically perform visual inspection for qualityassurance in industrial products. The disadvantage with manualinspection are: (1) low speed, (2) high cost, (3) inability to performreal-time inspection and, (4) the limitations on the range of detectabledefects. Currently, an inspector would compare a current piece oftextile being inspected to a standard piece of textile and by viewingthe pieces from different angles under certain lighted conditions todetermine if the textures are the same. Multiple inspectors are involvedin approving textiles across multiple shifts and multiple facilities.

Moreover, human visual perception is inherently subjective. Differentinspectors frequently reach different conclusions with respect toidentical samples. As a consequence, product consistency can beextremely difficult to obtain with manual inspection by different humaninspectors. Existing computer vision technologies developed to addressthese concerns are not equipped to address the variety of potentialdefects that can occur in textile manufacturing.

SUMMARY

It is to be understood that both the following general description andthe following detailed description are exemplary and explanatory onlyand are not restrictive.

Methods and systems are described comprising obtaining an image of atleast a portion of a textile, comparing the image to a reference imageof a reference textile, determining, based on the comparison, one ormore areas indicative of a height variation between the textile and thereference textile, and performing an action based on the one or moreareas indicative of the height variation.

Additional advantages will be set forth in part in the description whichfollows or may be learned by practice. The advantages will be realizedand attained by means of the elements and combinations particularlypointed out in the appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate embodiments and together with thedescription, serve to explain the principles of the methods and systems.The patent or application file contains at least one drawing executed incolor. Copies of this patent or patent application publication withcolor drawing(s) will be provided by the Office upon request and paymentof the necessary fee.

FIG. 1 is an example system;

FIG. 2 is an example decision engine;

FIG. 3A is an example image of a portion of an object;

FIG. 3B is an example image of a portion of an object;

FIG. 3C is an example image of a portion of an object;

FIG. 3D is an example image of a portion of an object;

FIG. 4 is an example image of a portion of an object with a plurality ofmatrix frames;

FIG. 5 is an example interface;

FIG. 6 is an example interface;

FIG. 7 is an example image of a portion of an object;

FIG. 8 is an example image of a portion of an object with a plurality ofmatrix frames;

FIG. 9A is an example image of a portion of an object;

FIG. 9B is an example image of a portion of an object;

FIG. 10 is a flowchart illustrating an example method; and

FIG. 11 is an exemplary operating environment.

DETAILED DESCRIPTION

Before the present methods and systems are disclosed and described, itis to be understood that the methods and systems are not limited tospecific methods, specific components, or to particular implementations.It is also to be understood that the terminology used herein is for thepurpose of describing particular embodiments only and is not intended tobe limiting.

As used in the specification and the appended claims, the singular forms“a,” “an” and “the” include plural referents unless the context clearlydictates otherwise. Ranges may be expressed herein as from “about” oneparticular value, and/or to “about” another particular value. When sucha range is expressed, another embodiment includes from the oneparticular value and/or to the other particular value. Similarly, whenvalues are expressed as approximations, by use of the antecedent“about,” it will be understood that the particular value forms anotherembodiment. It will be further understood that the endpoints of each ofthe ranges are significant both in relation to the other endpoint, andindependently of the other endpoint.

“Optional” or “optionally” means that the subsequently described eventor circumstance may or may not occur, and that the description includesinstances where said event or circumstance occurs and instances where itdoes not.

Throughout the description and claims of this specification, the word“comprise” and variations of the word, such as “comprising” and“comprises,” means “including but not limited to,” and is not intendedto exclude, for example, other components, integers or steps.“Exemplary” means “an example of” and is not intended to convey anindication of a preferred or ideal embodiment. “Such as” is not used ina restrictive sense, but for explanatory purposes.

Disclosed are components that can be used to perform the disclosedmethods and systems. These and other components are disclosed herein,and it is understood that when combinations, subsets, interactions,groups, etc. of these components are disclosed that while specificreference of each various individual and collective combinations andpermutation of these may not be explicitly disclosed, each isspecifically contemplated and described herein, for all methods andsystems. This applies to all aspects of this application including, butnot limited to, steps in disclosed methods. Thus, if there are a varietyof additional steps that can be performed it is understood that each ofthese additional steps can be performed with any specific embodiment orcombination of embodiments of the disclosed methods.

The present methods and systems may be understood more readily byreference to the following detailed description of preferred embodimentsand the examples included therein and to the Figures and their previousand following description.

As will be appreciated by one skilled in the art, the methods andsystems may take the form of an entirely hardware embodiment, anentirely software embodiment, or an embodiment combining software andhardware aspects. Furthermore, the methods and systems may take the formof a computer program product on a computer-readable storage mediumhaving computer-readable program instructions (e.g., computer software)embodied in the storage medium. More particularly, the present methodsand systems may take the form of web-implemented computer software. Anysuitable computer-readable storage medium may be utilized including harddisks, CD-ROMs, optical storage devices, or magnetic storage devices.

Embodiments of the methods and systems are described below withreference to block diagrams and flowchart illustrations of methods,systems, apparatuses and computer program products. It will beunderstood that each block of the block diagrams and flowchartillustrations, and combinations of blocks in the block diagrams andflowchart illustrations, respectively, can be implemented by computerprogram instructions. These computer program instructions may be loadedonto a general purpose computer, special purpose computer, or otherprogrammable data processing apparatus to produce a machine, such thatthe instructions which execute on the computer or other programmabledata processing apparatus create a means for implementing the functionsspecified in the flowchart block or blocks.

These computer program instructions may also be stored in acomputer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including computer-readableinstructions for implementing the function specified in the flowchartblock or blocks. The computer program instructions may also be loadedonto a computer or other programmable data processing apparatus to causea series of operational steps to be performed on the computer or otherprogrammable apparatus to produce a computer-implemented process suchthat the instructions that execute on the computer or other programmableapparatus provide steps for implementing the functions specified in theflowchart block or blocks.

Accordingly, blocks of the block diagrams and flowchart illustrationssupport combinations of means for performing the specified functions,combinations of steps for performing the specified functions and programinstruction means for performing the specified functions. It will alsobe understood that each block of the block diagrams and flowchartillustrations, and combinations of blocks in the block diagrams andflowchart illustrations, can be implemented by special purposehardware-based computer systems that perform the specified functions orsteps, or combinations of special purpose hardware and computerinstructions.

FIG. 1 is a block diagram illustrating various aspects of an exemplarysystem 100 in which the present methods and systems can operate. Oneskilled in the art will appreciate that provided herein is a functionaldescription and that the respective functions can be performed bysoftware, hardware, or a combination of software and hardware.

In one aspect, the system 100 can comprise a conveyor belt 101. Only theconveyor belt 101 is shown for simplicity, other components of thesystem 100 not shown include one or more of, a carriage, a cam, a bed,and/or a guide adjustment. The conveyor belt 101 is shown traveling indirection 102.

One or more objects can be placed on the conveyor belt 101. In anaspect, the one or more objects can comprise a textile 103 (e.g. carpet,rug, fabric, etc) in one or more states of assembly. The textile 103 maybe a piece of carpet. For example, the textile 103 can comprise one ormore layers. The one or more layers can comprise a backing, a padding,and/or pile. The backing can comprise a primary and/or a secondarybacking. The primary backing provides the structure for tufts oftextile. The secondary backing provides a bather from the padding andfloor. The backing can be made from natural or synthetic materials. Thepadding can be a layer of cushion that is installed between the floorand the textile. Pile comprises yarn tufts. Pile can be cut or uncut.Cut pile refers to tufts whose loops are cut leaving straight tufts oftextile. Loop pile refers to tufts whose loops are left uncut. Pileheight refers to the height from the backing to the top surface of thepile. As shown in FIG. 1, the textile 103 comprises areas 104, 105, and106 that have varying pile heights.

The conveyor belt 101 can pass over a drive roll which can be driven bya motor 107. The conveyor belt 101 may be adjustable up or down. Themotor 107 enables positioning of the textile 103 relative to a camera108, a camera 109, and a camera 110. The conveyor belt 101 can beadvanced or reversed to cause respective portions of the textile 103 tobe moved into a field of view 111, a field of view 112, and/or a fieldof view 113, associated with the camera 108, the camera 109, and thecamera 110, respectively. The camera 108, the camera 109, and/or thecamera 110 may be in fixed positions or may be adjustable. In anotherembodiment, the camera 108, the camera 109, and/or the camera 110 may beconfigured to move across a fixed textile 103.

A programmable logic controller (PLC) 114 (the PLC 114 can comprise acomputing device, a PLC, or other controller/processor) can beconfigured to cause the motor 107 to advance in either direction tocause the any portion of the textile 103 to be moved into the field ofview 111, the field of view 112, and/or the field of view 113.

In an aspect, the camera 108, the camera 109, and/or the camera 110 canbe configured for scanning, decoding, reading, sensing, imaging, and/orcapturing, one or more images of one or more portions of the textile103. The camera 108, the camera 109, and/or the camera 110 can includeone or more depth cameras for capturing, processing, sensing, observing,modeling, detecting, and interacting with three-dimensionalenvironments. In certain aspects, the camera 108, the camera 109, and/orthe camera 110 can recognize and detect depths and colors of objects inthe field of view 111, the field of view 112, and/or the field of view113, respectively. The camera 108, the camera 109, and/or the camera 110can also provide other camera and video recorder functionalities, suchas recording videos, streaming images or other data, storing data inimage buffers, etc. These functionalities may or may not include depthinformation. In connection with hardware and/or software processesconsistent with the disclosed embodiments, the camera 108, the camera109, and/or the camera 110 can determine sizes, orientations, and visualproperties of one or more portions of the textile 103. The camera 108,the camera 109, and/or the camera 110 can include or embody any cameraknown to one of ordinary skill in the art capable of handling theprocesses disclosed herein.

The camera 108, the camera 109, and/or the camera 110 can comprise linescan cameras. Line scan cameras contain a single row of pixels used tocapture data very quickly. As an object passes the camera, a completeimage can be reconstructed in software line by line.

The camera 108, the camera 109, and/or the camera 110 can comprise 3Dcameras. The camera 108, the camera 109, and/or the camera 110 cancomprise 3D line scan cameras. Unlike a conventional camera, a 3D cameraalso takes depth information and thus generates three-dimensional imagedata having spacing values or distance values for the individual pixelsof the 3D image which is also called a distance image or a depth map.The additional distance dimension can be utilized to obtain moreinformation regarding portions of the textile 103 detected by the camera108, the camera 109, and/or the camera 110.

Two primary 3D camera technologies are currently available, structuredlight and time of flight. A structured light camera projects an activepattern and obtains depth by analyzing the deformation of the pattern.In contrast, a time-of-flight camera measures the time that light hasbeen in flight to estimate distance. Either 3D camera may be implementedin the system 100.

The camera 108, the camera 109, and/or the camera 110 can includeappropriate hardware and software components (e.g., circuitry, softwareinstructions, etc.) for transmitting signals and information to and froma pass/fail controller 115 to conduct processes consistent with thedisclosed embodiments. The pass/fail controller 115 can comprise acomputing device, a PLC, or other controller/processor. The camera 108,the camera 109, and/or the camera 110 can transmit an image taken of aportion of the textile 103 to the pass/fail controller 115. Thepass/fail controller 115 can comprise a decision engine 210. Thedecision engine 210 can be configured to analyze images received fromthe camera 108, the camera 109, and/or the camera 110 and determine adefect in one or more portions of the textile 103. Operation of thedecision engine 210 is described in more detail with regard to FIG. 2Aand FIG. 2B.

The camera 108, the camera 109, the camera 110, and/or the pass/failcontroller 115 can output an image and/or one or more notifications to amonitor 116, a monitor 117, and/or a monitor 118, respectively. Thepass/fail controller 115 can output a result of the determination madeby the decision engine 210 to the monitor 116, the monitor 117, and/orthe monitor 118.

In operation, the system 100 can be configured to determine a defect inone or more portions of the textile 103 and take one or more actionsbased on any determined defects. As the textile 103 is advanced by theconveyor belt 101, portions of textile 103, such as the areas 104, 105,and/or 106 will, at some point, pass into the field of view 111, thefield of view 112, and/or the field of view 113 of the camera 108, thecamera 109, and/or the camera 110, respectively. While FIG. 1illustrates only three cameras, it is specifically contemplated thatless than three or more than three cameras can be used. It is furthercontemplated that the conveyor belt 101 can be configured to have morethan the illustrated three areas 104, 105, and 106, regardless of thenumber of cameras.

When a portion of the textile 103, such as the areas 104, 105, and 106,is within a field of view of one of the cameras, the camera can generatean image of the portion of the textile 103 within the field of viewassociated with that camera. For example, the camera 108 can generate animage of the area within the field of view 111, the camera 109 cangenerate an image of the area within the field of view 112, and thecamera 110 can generate an image of the area within the field of view113. Each of the camera 108, the camera 109, and/or the camera 110 cananalyze their respective images or transmit their respective images tothe pass/fail controller 115 for analysis. An entire image may beanalyzed or one or more specific regions of an image may be analyzed.

In an embodiment, each of the camera 108, the camera 109, and/or thecamera 110 can be configured to make an independent assessment of aportion of the textile 103 within the respective fields of view. In anembodiment, the assessment of the portion of the textile 103 may be madeby comparing the image(s) to reference images. In an embodiment, theassessment of the portion of the textile 103 may be made by comparingthe image(s) to predefined thresholds. If a camera determines that nodefect is present, the camera can issue a PASS signal to the pass/failcontroller 115. If a camera determines that a defect is present, thecamera can issue a FAIL signal to the pass/fail controller 115. Thepass/fail controller 115 can provide a signal to the PLC 114 to causethe motor 107 to advance the conveyor belt 101 (no defect present) or tostop the conveyor belt 101 (defect present). The pass/fail controller115 can further transmit a notification to the monitors 116-118associated with the camera(s) issuing the FAIL signal to display a FAILnotification. An operator (e.g., a human or a robot) positioned at themonitors 116-118 displaying the FAIL notification can take correctiveaction to remedy the FAIL status. For example, if the FAIL signal wasissued as a result of incorrect raised pile height, the needle bar canbe adjusted to correct future defects of the same type. In anotherexample, if the FAIL signal was issued as a result of a low pile height,the bed can be adjusted to correct future defects of the same type. In afurther example, if the FAIL signal was issued as a result of the pilebeing too high in an area compared to standard, the yarn rates may beadjusted to correct future defects of the same type. In another example,if the FAIL signal was issued as a result of the pile being too variedin an area compared to standard, the bed may be adjusted to correctfuture defects of the same type.

FIG. 2A illustrates the decision engine 210 with a comparator 206. Areference image 201 may be generated using a reference textile that isestablished as being free from defects. The reference image 201 may beobtained using a 3D camera. A plurality of reference images 201 may begenerated. A reference textile may have several reference images 201associated with the reference textile. Each reference image 201 may beassociated with a specific portion of the reference textile. Eachreference image 201 may be further associated with a camera whose fieldof view is situated to generate an image of the portion of the textile103 under inspection that corresponds to the specific portion of thereference textile. FIG. 3A shows an example of a reference image 201.The reference image may be denoted in some manner, such as with areference identifier and stored in for comparison with images takenduring manufacturing runs. The reference image may be updated as neededdue to a varying circumstances.

An image converter 202 of the decision engine 210 may receive thereference image 201 and convert the reference image 201 into a depthmap. The reference image 201 may comprise a point cloud and/or a depthmap. A point cloud and a depth map may be considered as two differentways to view the same information. However, with a point cloud allpoints are observable, whereas a depth map only reflects points from thepoint cloud that can be observed from a particular viewpoint. A depthmap may be generated from the point cloud by assuming some viewpoint ofthe point cloud data in the coordinate system of the point cloud data.Any 3D point in a point cloud may be described by specifying x, y, and zcomponents. An alternative representation of a 3D point may be describedby specifying angles theta, phi, and a distance. Theta and phi inspecify the angles of a ray coming out of the origin (or any otherviewpoint). The distance along the ray needed to reach a point in thepoint cloud is the depth value. A depth image stores these depth valuesfor different directions or rays. The rows of a depth map can correspondto one of the angles (e.g., phi), and the columns of the depth map cancorrespond to the other angle (e.g., theta). Each pixel may correspondto different directions or different rays, and the value stored at thepixel is the depth along that ray needed to travel before hitting apoint from the point cloud.

The image converter 202 may assign a color to each pixel in the depthmap, wherein the color corresponds to a distance from the camera to thesurface of the reference textile, to generate a reference topographicmap 203. A gradient of one color to another color may be used toindicate a variety in pile heights. For example, pixels that represent alow pile height may be indicated as red and pixels that represent a highpile height may be indicated as green. A gradient of red to yellow togreen pixels may be used to indicate pile heights. FIG. 3B shows anexample of a reference topographic map 203 based on the reference image201 of FIG. 3A.

The image converter 202 of the decision engine 210 may receive an image204 from one of the cameras (e.g., the camera 110) of the system 100.The image 204 may be taken of a textile that is currently beingmanufactured. The image converter 202 may convert the image 204 into adepth map. The image 204 may comprise a point cloud and/or a depth map.As described previously, the image converter 202 may generate atopographic map 205 based on the depth map of the image 204. FIG. 3Bshows an example of the image 204. FIG. 3C shows an example of thetopographic map 205 generated from the image 204.

The reference topographic map 203 and the topographic map 205 may beprovided to the comparator 206. The comparator 206 may compare thereference topographic map 203 and the topographic map 205 to determineany variation in the topographic map 205 from the reference topographicmap 203. Alternatively, the comparator 206 may be configured to comparethe topographic map 205 to predetermined threshold values to determine avariation.

In an embodiment, a variation may be determined by the comparator 206determining, for each pixel of the reference topographic map 203, areference value indicative of a pile height. The comparator 206 maydetermine, for each pixel of the topographic map 205, a value indicativeof a pile height. The comparator 206 may determine, for each pixel, avariation between the reference value and the value. The variation maybe positive, negative, or zero. The variation may be compared to athreshold to determine whether the variation is indicative of a defect.

In an embodiment, a variation may be determined by the comparator 206determining, for each pixel of the topographic map 205, a valueindicative of a pile height. The comparator 206 may determine, for eachpixel, a variation between the value and a predetermined threshold. Thevariation may be positive, negative, or zero. The variation may becompared to another threshold to determine whether the variation isindicative of a defect.

In an embodiment, a color measurement of each pixel the referencetopographic map 203 and each pixel of the topographic map 205 may bedetermined. The color measurement may be a spectral value, an L*a*b*value, an RGB value, a CMYK value, an XYZ value, a density value, aMunsell display value, an infrared wavelength, an ultravioletwavelength, or an X-ray wavelength. The comparator 206 may determine adifference in the color measurements of each pixel in the referencetopographic map 203 and each corresponding pixel of the topographic map205. The comparator 206 may register the reference topographic map 203to the topographic map 205 to ensure that appropriate pixels in eachimage are being compared. One or more registration marks, shown as avertical line and a rectangle in FIGS. 3A-3D, may be used to register orotherwise align one image to another.

In an embodiment, the reference topographic map 203 and the topographicmap 205 may be subdivided into a matrix comprised of matrix frames, eachmatrix frame containing a pixel group. The matrix frames may then becompared. For example, a difference in color measurements within one ormore matrix frames may be determined. In another example, an averagecolor measurement may be determined for a matrix frame. The averagecolor measurements may be compared between corresponding matrix framesin the reference topographic map 203 and the topographic map 205. Thecomparator 206 may determine color differences between matrix frames.FIG. 4 is a diagram illustrating a subdivided image 400. As such, theimage 400 is divided into matrix frames 410. All or some of the matrixframes 410 may be used to set an evaluation range of for image areacolor measurement. In this way, a process of dividing the subdividedimage 400 into small areas and specifying a specific area to beevaluated is simplified. The specific area to be evaluated may includeone matrix frame or a plurality of matrix frames.

The size of the specific area to be evaluated may be variable. Forexample, certain areas of a textile may be more strictly controlled withregard to pile height, while other areas of the textile may tolerategreater variance in pile height. Matrix frames corresponding to the areaof strictly controlled pile height may be analyzed, while areas withgreater allowed pile height may be excluded. Similarly, matrix framescorresponding to areas of greater pile height may be compared to one setof predetermined thresholds while matrix frames corresponding to areasof lesser pile height may be compared to another set of predeterminedthresholds. Each matrix frame 410 may comprise a predetermined shape,such as a rectangular shape or a circular shape, in order to determine acolor difference between areas of the subdivided image 400.

Defined by the Commission Internationale de l'Eclairage (CIE), theL*a*b* color space was modeled after a color-opponent theory statingthat two colors cannot be red and green at the same time or yellow andblue at the same time. As shown below, L* indicates lightness, a* is thered/green coordinate, and b* is the yellow/blue coordinate. Deltas forL* (ΔL*), a* (Δa*) and b* (Δb*) may be positive (+) or negative (−). Thetotal difference, Delta E (ΔE*), however, is always positive.

The comparator 206 may be configured to average an L*a*b* value, whichis color information, measured for each matrix frame 410 in thesubdivided image 400. The comparator 206 may be configured to comparethe matrix frame 410 color information L*a*b* values for each matrixframe 410 in the subdivided image 400 to corresponding color informationL*a*b* values for each matrix frame in a subdivided reference image tocalculate the color difference ΔE of each matrix frame and generatecolor difference data. Alternatively, the comparator 206 may beconfigured to compare the matrix frame 410 color information L*a*b*values for each matrix frame 410 in the subdivided image 400 topredetermined threshold values to calculate the color difference ΔE ofeach matrix frame and generate color difference data. Each matrix frame410 may have a different predetermined threshold. Groups of matrixframes 410 may have share a predetermined threshold that is differentfrom other groups of matrix frames 410.

The average L*a*b* value of the matrix frame 410 is obtained bycalculating the total sum of the L*, a*, b* values of n pixels withinthe matrix frame and dividing the total sum by n and may be a base forcalculating the matrix frame color difference.

A general pixel color difference ΔE may be obtained by image matchingthe reference topographic map 203 to the topographic map 205 andsubtracting an evaluation L*a*b* value from a reference L*a*b* value foreach pixel of the same picture portion (for example, the same specificarea or the same matrix frame) and may be represented by the followingEquation (1):

ΔE=√(L1−L2)²+(a1−a2)²+(b1−b2)²

A matrix frame color difference ΔE may be obtained by image matching thereference topographic map 203 to the topographic map 205, determiningthe total sum of the L*a*b* values of all pixels in the matrix frames inwhich the reference topographic map 203 to the topographic map 205correspond to each other, averaging the total sum to calculate areference L*a*b* value from the reference topographic map 203, andsubtracting an evaluation L*a*b* value from the topographic map 205, andmay represented by the following Equation (2).

Matrix frame color difference ΔE=√{(L1m1+L1m2+, . . .,L1mn)/n}−{(L2m1+L2m2+, . . . ,L2mn)/n}]²+{(a1m1+a1m2+, . . .,a1n)/n}−{(a2m1+a2m2+, . . . ,a2mn)/n} ²+{(b1m1+b1m2+, . . .,b1n)/n}−{(b2m1+b2m2+, . . . ,b2mn)/n} ²

The comparator 206 may be configured to average the matrix frame colordifference ΔE over specific areas or the entire subdivided image 400 tocalculate color difference data for the matrix frame color differenceaverage value. Alternatively, the average value of color difference foreach pixel may be determined.

In addition, the comparator 206 may be configured to determine a pixelcolor difference average or a matrix frame color difference average,which is a comparison value between the color difference average valuesof all of the pixels or the matrix frames in a specific area, based onthe pixel color difference ΔE or the matrix frame color difference ΔE,and calculate color difference data for the entire subdivided image 400.

In another embodiment, a general pixel color difference average valuemay be determined by totaling n pixel color differences ΔE in a matrixframe including a total of n pixels and dividing the total sum by n,which is a total number of pixels, and is represented by the followingEquation (3).

ΔE=(pixel ΔE1+pixel ΔE2+, . . . ,pixel ΔEn)/n

In another embodiment, a matrix frame color difference average value maybe determined by totaling n matrix frame color differences ΔE in amatrix frame including a total of n matrix frames and dividing the totalsum by n, which is a total number of matrix frames, and is representedby the following Equation (4).

ΔE=(matrix frame ΔE1+matrix frame ΔE2+, . . . ,matrix frame ΔEn)/n

The color difference data for a specific area or the subdivided image400 may be displayed by at least one of colors, characters, andnumerical values, as illustrated in FIG. 5 and FIG. 6.

In FIG. 5, for example, an image display field 510 may comprise anindication of a color measurement for one or more matrix fields of thetopographic map 205 (sample color) and the color measurement for thesame one or more matrix fields of the reference topographic map 203(reference color). The ΔE between the sample color and the referencecolor may be determined and displayed. The ΔE may be compared to athreshold value and/or each matrix frame may be compared to a thresholdvalue specific to the matrix field. A result of the comparison may bewhether the color difference, if any, is indicative of a variation inpile height such that the newly manufactured sample comprises a defect.A status of the portion of the textile associated with a matrix framemay be given a status of FAIL or PASS, based on whether the ΔE exceededthe threshold.

In FIG. 6, for example, an image display field 610 may comprise anindication of a color measurement for one or more matrix fields of thetopographic map 205 (sample color). A color measurement may becorrelated to a pile height in advance. A color measurement may becorrelated to a range of pile heights in advance. A range of colormeasurements may be correlated to a pile height in advance. A range ofcolor measurements may be correlated to a range of pile heights inadvance. The correlation of pile heights to color measurements may bestored, for example, in a table, matrix, array, and the like. Thecomparator 206 may determine, for each pixel of the topographic map 205,the color measurement and display in the image display field 610 (samplecolor). The color measurements may be compared to the correlation ofpile heights to color measurements to determine a pile height associatedwith the color measurement for each matrix field. The determined pileheight may be displayed. The determined pile height may be compared to athreshold. The threshold may comprise a maximum pile height. Thethreshold may comprise a minimum pile height. The threshold may comprisea maximum pile height and a minimum pile height. Different matrix fieldsmay have different thresholds. The threshold values may be displayed.The comparator 206 may determine, for each matrix field (or for eachpixel) whether the determined height satisfies (e.g., is within, doesnot exceed, and the like) the threshold(s). A result of the comparisonmay be whether the determined pile height, is indicative of a variationin pile height such that the newly manufactured sample comprises adefect. A status of the portion of the textile associated with a matrixframe may be given a status of FAIL or PASS, based on whether thedetermined pile height exceeded the threshold(s).

As shown in FIG. 5 and FIG. 6, it is possible to easily check the colordifference and to easily and rapidly determine whether a currentlymanufactured textile has a defect.

FIG. 7 shows an example image 700 of a textile having multiple pileheights as part of the design. Border sections 710 may comprise a firstpile height (H_1). A center section 720 may comprise a second pileheight (H_2). A pattern 730 may comprise a third pile height (H_3). Inan embodiment, each of the pile heights (H_1, H_2, and H_3) may bedifferent. In an embodiment, each of the each of the pile heights (H_1,H_2, and H_3) may comprise a different threshold for what is anacceptable pile height, what is an acceptable deviation from theacceptable pile height, and what is an unacceptable pile height. In anembodiment, one or more of the pile heights (H_1, H_2, and H_3) may bethe same, for example, the pile height H_1 may be the same as the pileheight H_3).

FIG. 8 shows a plurality of matrix frames 810 overlaid on the image 700.The plurality of matrix frames 810 may vary in size, based on the sizeof the various sections of the image 700 of the textile (e.g., theborder section 710, the center section 720, and the design 730). In anembodiment, one or more of the plurality of matrix frames 810 may beanalyzed independently for each section of the image 700 of the textile.The comparator 206 may analyze the image 700 as described above todetermine any variances in pile height.

The comparator 206 may generate an output 207 indicating the determinedvariation(s). Based on the output 207, the pass/fail controller 115 mayprovide a notification to the monitors 116, 117, and/or 118 and/or causethe PLC 114 to advance or stop the motor 107.

As described, the decision engine 210 may be configured to compare atopographic map of a newly acquired image of a portion of a textile to areference topographic map of a reference image of the same correspondingportion of a reference textile.

In another embodiment, the decision engine 210 may be configured tocompare a topographic map of a newly acquired image of a portion of atextile to another topographic map of another newly acquired image ofanother portion of the same textile. For example, a textile intended tohave a common pile height throughout may have images generated from twodifferent portions of the textile. Topographic maps may be generated foreach portion and the topographic maps compared. Any variances betweenthe two topographic maps may be indicative of a defect.

In another embodiment, the decision engine 210 may be configured tocompare a topographic map of a newly acquired image of a portion of atextile manufactured by a first machine to another topographic map ofanother newly acquired image of a corresponding portion of a differenttextile manufactured by a second machine. For example, two textilesintended to have similar pile heights may have images generated fromcorresponding portions of the respective textiles. Topographic maps maybe generated and the topographic maps compared. Any variances betweenthe two topographic maps may be indicative of a defect affecting thefirst machine or the second machine.

In another embodiment, the decision engine 210 may be configured tocompare a topographic map of a newly acquired image of a portion of atextile manufactured by a machine to another topographic map of anothernewly acquired image of a corresponding portion of a different textilemanufactured by the same machine later in time. For example, twotextiles intended to have similar pile heights may have images generatedfrom corresponding portions of the respective textiles. Topographic mapsmay be generated and the topographic maps compared. Any variancesbetween the two topographic maps may be indicative of a defect affectingthe machine.

FIG. 9A is an image of a textile, such as a piece of carpet. The textilemay contain an off gauge tuft and a hole in the carpet where a tuft waspulled out onto the back of the carpet. From this image alone, it isdifficult, if not impossible, to identify these defects. FIG. 9B showsthe topographic map of the textile of FIG. 9A. It is readily apparentbased on the coloration that there is an off gauge tuft 910 in thetextile. Moreover, based on the coloration, the hole 920 is readilyapparent.

FIG. 10 shows a method 1000 comprising obtaining (e.g., receiving) animage of at least a portion of a textile at 1010. Obtaining the image ofthe at least the portion of the textile may comprise receiving the imagefrom a three-dimensional camera.

The method 1000 may comprise comparing the image to a reference image ofa reference textile at 1020. The method 1000 may further compriseobtaining the reference image of the reference textile. Comparing theimage to the reference image of the reference textile may comprisedetermining, for each pixel of the reference image, a reference valueindicative of a pile height, determining, for each pixel of the image, avalue indicative of a pile height, and determining, for each pixel, avariation between the reference value and the value.

The method 1000 may comprise determining, based on the comparison, oneor more areas indicative of a height variation between the textile andthe reference textile at 1030. Determining, based on the comparison, oneor more areas indicative of a height variation between the textile andthe reference textile may comprise identifying each pixel having avariation that satisfies a threshold. The height variation may be one ofa negative value, a positive value, or a zero value.

The method 1000 may comprise performing an action based on the one ormore areas indicative of the height variation at 1040. Performing anaction based on the one or more areas indicative of the height variationmay comprise generating a pass inspection signal. Performing an actionbased on the one or more areas indicative of the height variation maycomprise generating a fail inspection signal and notifying an operatorthat the textile should be removed from a belt having the textiledisposed thereon.

Performing an action based on the one or more areas indicative of theheight variation may comprise: one or more of, raising or lowering abelt having the textile disposed thereon, adjusting a carriage,adjusting a cam, adjusting a bed, and/or adjusting a guide.

The method 1000 may further comprise generating an overlay for theimage, wherein the overlay comprises, at each pixel, a color indicativeof the variation.

In an exemplary aspect, the methods and systems can be implemented on acomputer 1101 as illustrated in FIG. 11 and described below. By way ofexample, the camera 108, the camera 109, the camera 110, the PLC 114,and/or the pass/fail controller 115 (or a component thereof) of FIG. 1can be a computer 1101 as illustrated in FIG. 11. Similarly, the methodsand systems disclosed can utilize one or more computers to perform oneor more functions in one or more locations. FIG. 11 is a block diagramillustrating an exemplary operating environment 1100 for performing thedisclosed methods. This exemplary operating environment 1100 is only anexample of an operating environment and is not intended to suggest anylimitation as to the scope of use or functionality of operatingenvironment architecture. Neither should the operating environment 1100be interpreted as having any dependency or requirement relating to anyone or combination of components illustrated in the exemplary operatingenvironment 1100.

The present methods and systems can be operational with numerous othergeneral purpose or special purpose computing system environments orconfigurations. Examples of well-known computing systems, environments,and/or configurations that can be suitable for use with the systems andmethods comprise, but are not limited to, personal computers, servercomputers, laptop devices, and multiprocessor systems. Additionalexamples comprise set top boxes, programmable consumer electronics,network PCs, programmable logic controllers (PLCs), minicomputers,mainframe computers, distributed computing environments that compriseany of the above systems or devices, and the like.

The processing of the disclosed methods and systems can be performed bysoftware components. The disclosed systems and methods can be describedin the general context of computer-executable instructions, such asprogram modules, being executed by one or more computers or otherdevices. Generally, program modules comprise computer code, routines,programs, objects, components, data structures, and/or the like thatperform particular tasks or implement particular abstract data types.The disclosed methods can also be practiced in grid-based anddistributed computing environments where tasks are performed by remoteprocessing devices that are linked through a communications network. Ina distributed computing environment, program modules can be located inlocal and/or remote computer storage media including memory storagedevices.

Further, one skilled in the art will appreciate that the systems andmethods disclosed herein can be implemented via a general-purposecomputing device in the form of a computer 1101. The computer 1101 cancomprise one or more components, such as one or more processors 1103, asystem memory 1112, and a bus 1113 that couples various components ofthe computer 1101 including the one or more processors 1103 to thesystem memory 1112. In the case of multiple processors 1103, the systemcan utilize parallel computing.

The bus 1113 can comprise one or more of several possible types of busstructures, such as a memory bus, memory controller, a peripheral bus,an accelerated graphics port, and a processor or local bus using any ofa variety of bus architectures. The bus 1113, and all buses specified inthis description can also be implemented over a wired or wirelessnetwork connection.

The computer 1101 typically comprises a variety of computer readablemedia. Exemplary readable media can be any available media that isaccessible by the computer 1101 and comprises, for example and not meantto be limiting, both volatile and non-volatile media, removable andnon-removable media. The system memory 1112 can comprise computerreadable media in the form of volatile memory, such as random accessmemory (RAM), and/or non-volatile memory, such as read only memory(ROM). The system memory 1112 typically can comprise data such as imageanalysis data 1107 and/or program modules such as operating system 1105and image analysis software 1106 that are accessible to and/or areoperated on by the one or more processors 1103.

In another aspect, the computer 1101 can also comprise otherremovable/non-removable, volatile/non-volatile computer storage media.The mass storage device 1104 can provide non-volatile storage ofcomputer code, computer readable instructions, data structures, programmodules, and other data for the computer 1101. For example, a massstorage device 1104 can be a hard disk, a removable magnetic disk, aremovable optical disk, magnetic cassettes or other magnetic storagedevices, flash memory cards, CD-ROM, digital versatile disks (DVD) orother optical storage, random access memories (RAM), read only memories(ROM), electrically erasable programmable read-only memory (EEPROM), andthe like.

Optionally, any number of program modules can be stored on the massstorage device 1104, including by way of example, an operating system1105 and image analysis software 1106. One or more of the operatingsystem 1105 and image analysis software 1106 (or some combinationthereof) can comprise elements of the programming and the image analysissoftware 1106. Image analysis data 1107 can also be stored on the massstorage device 1104. Image analysis data 1107 can be stored in any ofone or more databases known in the art. Examples of such databasescomprise, DB2®, Microsoft® Access, Microsoft® SQL Server, Oracle®,mySQL, PostgreSQL, and the like. The databases can be centralized ordistributed across multiple locations within the network 1115.

In another aspect, the user can enter commands and information into thecomputer 1101 via an input device (not shown). Examples of such inputdevices comprise, but are not limited to, a keyboard, pointing device(e.g., a computer mouse, remote control), a microphone, a joystick, ascanner, touch-enabled devices such as a touchscreen, tactile inputdevices such as gloves and other body coverings, motion sensors, and thelike. These and other input devices can be connected to the one or moreprocessors 1103 via a human machine interface 1102 that is coupled tothe bus 1113, but can be connected by other interface and busstructures, such as, but not limited to, a parallel port, game port, anIEEE 1394 Port (also known as a Firewire port), a serial port, networkadapter 1108, and/or a universal serial bus (USB).

In yet another aspect, a display device 1111 can also be connected tothe bus 1113 via an interface, such as a display adapter 1109. It iscontemplated that the computer 1101 can have more than one displayadapter 1109 and the computer 1101 can have more than one display device1111. For example, a display device 1111 can be a monitor, an LCD(Liquid Crystal Display), light emitting diode (LED) display,television, smart lens, smart glass, and/or a projector. In addition tothe display device 1111, other output peripheral devices can comprisecomponents such as speakers (not shown) and a printer (not shown) whichcan be connected to the computer 1101 via Input/Output Interface 1110.Any step and/or result of the methods can be output in any form to anoutput device. Such output can be any form of visual representation,including, but not limited to, textual, graphical, animation, audio,tactile, and the like. The display 1111 and computer 1101 can be part ofone device, or separate devices.

In an aspect, the computer 1101 can be coupled to the system 100 via theInput/Output Interface 1110. The computer 1101 can be configured tomonitor and store data. The computer 1101 can be configured to storeimages acquired by cameras connected to the system 100, store datarelated to pass/fail statistics generated during system-generatedinspections, etc. The computer 1101 can also be used as a programminginterface to one or more smart devices (e.g., smart cameras) and/orembedded logic controllers that require customized firmware to operate.The computer 1101 can be used to generate, troubleshoot, upload, andstore iterations of this software or firmware.

The computer 1101 can operate in a networked environment using logicalconnections to one or more remote computing devices 1114 a,b,c. By wayof example, a remote computing device 1114 a,b,c can be a personalcomputer, computing station (e.g., workstation), portable computer(e.g., laptop, mobile phone, tablet device), smart device (e.g.,smartphone, smart watch, activity tracker, smart apparel, smartaccessory), security and/or monitoring device, a server, a router, anetwork computer, a peer device, edge device or other common networknode, and so on. Logical connections between the computer 1101 and aremote computing device 1114 a,b,c can be made via a network 1115, suchas a local area network (LAN) and/or a general wide area network (WAN).Such network connections can be through a network adapter 1108. Anetwork adapter 1108 can be implemented in both wired and wirelessenvironments. Such networking environments are conventional andcommonplace in dwellings, offices, enterprise-wide computer networks,intranets, and the Internet. In an aspect, the network adapter 1108 canbe configured to provide power to one or more connected devices (e.g., acamera). For example, the network adapter 1108 can adhere to thePower-over-Ethernet (PoE) standard or the like.

For purposes of illustration, application programs and other executableprogram components such as the operating system 1105 are illustratedherein as discrete blocks, although it is recognized that such programsand components can reside at various times in different storagecomponents of the computing device 1101, and are executed by the one ormore processors 1103 of the computer 1101. An implementation of imageanalysis software 1106 can be stored on or transmitted across some formof computer readable media. Any of the disclosed methods can beperformed by computer readable instructions embodied on computerreadable media. Computer readable media can be any available media thatcan be accessed by a computer. By way of example and not meant to belimiting, computer readable media can comprise “computer storage media”and “communications media.” “Computer storage media” can comprisevolatile and non-volatile, removable and non-removable media implementedin any methods or technology for storage of information such as computerreadable instructions, data structures, program modules, or other data.Exemplary computer storage media can comprise RAM, ROM, EEPROM, flashmemory or other memory technology, CD-ROM, digital versatile disks (DVD)or other optical storage, magnetic cassettes, magnetic tape, magneticdisk storage or other magnetic storage devices, or any other mediumwhich can be used to store the desired information and which can beaccessed by a computer.

While the methods and systems have been described in connection withpreferred embodiments and specific examples, it is not intended that thescope be limited to the particular embodiments set forth, as theembodiments herein are intended in all respects to be illustrativerather than restrictive.

Unless otherwise expressly stated, it is in no way intended that anymethod set forth herein be construed as requiring that its steps beperformed in a specific order. Accordingly, where a method claim doesnot actually recite an order to be followed by its steps or it is nototherwise specifically stated in the claims or descriptions that thesteps are to be limited to a specific order, it is no way intended thatan order be inferred, in any respect. This holds for any possiblenon-express basis for interpretation, including: matters of logic withrespect to arrangement of steps or operational flow; plain meaningderived from grammatical organization or punctuation; the number or typeof embodiments described in the specification.

It will be apparent to those skilled in the art that variousmodifications and variations can be made without departing from thescope or spirit. Other embodiments will be apparent to those skilled inthe art from consideration of the specification and practice disclosedherein. It is intended that the specification and examples be consideredas exemplary only, with a true scope and spirit being indicated by thefollowing claims.

What is claimed is:
 1. A method comprising: receiving, by a computingdevice, an image of at least a portion of a textile; comparing the imageto a reference image of a reference textile; determining, based on thecomparison, one or more areas indicative of a height variation betweenthe textile and the reference textile; and performing an action based onthe one or more areas indicative of the height variation.
 2. The methodof claim 1, wherein receiving the image of the at least the portion ofthe textile comprises receiving the image from a three-dimensionalcamera.
 3. The method of claim 1, further comprising receiving thereference image of the reference textile.
 4. The method of claim 1,wherein comparing the image to the reference image of the referencetextile comprises: determining, for each pixel of the reference image, areference value indicative of a pile height; determining, for each pixelof the image, a value indicative of a pile height; and determining, foreach pixel, a variation between the reference value and the value. 5.The method of claim 4, wherein determining, based on the comparison, oneor more areas indicative of a height variation between the textile andthe reference textile comprises: identifying each pixel having avariation that satisfies a threshold.
 6. The method of claim 4 furthercomprising: generating an overlay for the image, wherein the overlaycomprises, at each pixel, a color indicative of the variation.
 7. Themethod of claim 1, wherein the height variation is one of a negativevalue, a positive value, or a zero value.
 8. The method of claim 1,wherein performing an action based on the one or more areas indicativeof the height variation comprises: generating a pass inspection signal.9. The method of claim 1, wherein performing an action based on the oneor more areas indicative of the height variation comprises: generating afail inspection signal; and notifying an operator that the textileshould be removed from a belt having the textile disposed thereon. 10.The method of claim 1, wherein performing an action based on the one ormore areas indicative of the height variation comprises: one or more of,raising or lowering a belt having the textile disposed thereon,adjusting a carriage, adjusting a cam, adjusting a bed, or adjusting aguide.
 11. A system comprising: a belt having a textile disposedthereon; one or more cameras each configured to: obtain an image of atleast a portion of the textile currently disposed within a field of viewof the one or more cameras, and send the image to a computing device;and the computing device, configured to: compare the image to areference image of a reference textile; determine, based on thecomparison, one or more areas indicative of a height variation betweenthe textile and the reference textile, generate a pass inspection signalor a fail inspection signal, based on the one or more areas indicativeof the height variation.
 12. The system of claim 11, wherein the one ormore cameras comprise one or more three-dimensional cameras.
 13. Thesystem of claim 11, wherein the computing device is configured tocompare the image to the reference image of the reference textile by:determining, for each pixel of the reference image, a reference valueindicative of a pile height; determining, for each pixel of the image, avalue indicative of a pile height; and determining, for each pixel, avariation between the reference value and the value.
 14. The system ofclaim 13, wherein determining, based on the comparison, one or moreareas indicative of a height variation between the textile and thereference textile comprises: identifying each pixel having a variationthat satisfies a threshold.
 15. The system of claim 13, wherein thecomputing device is further configured to: generate an overlay for theimage, wherein the overlay comprises, at each pixel, a color indicativeof the variation.
 16. The system of claim 11, wherein the heightvariation is one of a negative value, a positive value, or a zero value.17. The system of claim 11, wherein the computing device is furtherconfigured to: notify an operator that the textile should be removedfrom the belt having the textile disposed thereon.
 18. The system ofclaim 11, wherein the computing device is further configured to: one ormore of, raise or lower a belt having the textile disposed thereon,adjust a carriage, adjust a cam, adjust a bed, and/or adjust a guide.19. The system of claim 11, wherein the computing device is furtherconfigured to: stop the belt from advancing based on generating a failinspection signal.
 20. An apparatus comprising: one or more processors;and a memory storing processor-executable instructions that, whenexecuted by the one or more processors, cause the apparatus to: receivean image of at least a portion of a textile; compare the image to areference image of a reference textile; determine, based on thecomparison, one or more areas indicative of a height variation betweenthe textile and the reference textile; and perform an action based onthe one or more areas indicative of the height variation.